高可用
创建hdfs目录
hdfs dfs -mkdir -p /flink/recovery
修改配置文件
vi conf/flink-conf.yaml
未使用集群管理器配置(也就是没有yarn的情况下)
high-availability: zookeeper
high-availability.zookeeper.quorum: localhost:2181
high-availability.zookeeper.path.root: /flink
high-availability.cluster-id: /cluster_one # important: customize per cluster
high-availability.storageDir: hdfs:///flink/recovery
有yarn的情况下
high-availability: zookeeper
high-availability.zookeeper.quorum: master1:2181,master2:2181,node1:2181
high-availability.zookeeper.path.root: /flink
high-availability.storageDir: hdfs:///flink/recovery
重要:
high-availability.cluster-id在 YARN、原生 Kubernetes 或其他集群管理器上运行时,不应该手动设置此值。在这些情况下,将自动生成一个集群 ID。如果在未使用集群管理器的机器上运行多个 Flink 高可用集群,则必须为每个集群手动配置单独的集群 ID(cluster-ids)。
测试高可用
提交测试程序
bin/flink run-application -t yarn-application -Dyarn.provided.lib.dirs="hdfs://bigdatacluster/flink-dist" hdfs://bigdatacluster/flink-jars/TopSpeedWindowing.jar
找到对应启动的jobmaster端口号,执行kill操作
netstat -tulnp | grep 35025
kill -9 32615
如果重新启动了一个master那么说明高可用配置成功了。然后查看是否还存活的。
yarn top
获取下一个重启jobmanager信息,zookeeper运行。可以看到重新启动以后的jobmanager的端口
get /flink/application_1698659960145_0013/leader/rest_server/connection_info
使用下面的命令就能够完全的kill掉对应的flink高可用任务
yarn application -kill application_1698659960145_0013